﻿using System;
using System.Linq;

namespace MyHome.Server.PluginBase
{
    /// <summary>
    /// Interface for a plugin that can input and output data
    /// </summary>
    /// <typeparam name="T">The type of data used in the output part of the plugin.</typeparam>
    /// <typeparam name="U">The type of data used in the intput part of the plugin.</typeparam>
    /// <remarks>
    /// Note that you pass data into this plugin by using the output part (you are passing data OUT of the system into the plugin).
    /// Also note that you pass data out of this plugin by using the input part (you are passing data out of the plugin INTO of the system).
    /// </remarks>
    public interface IInputOutputPlugin<T, U> : IInputPlugin<U>, IOutputPlugin<T>
    {
    }
}